const WebSocket = require("ws");
const { createClient } = require("redis");

// 创建 WebSocket 服务器
const wss = new WebSocket.Server({ port: 3000 }, () => {
    console.log("WebSocket server started on1 ws://localhost:3000");
});

// 创建 Redis 客户端
const client = createClient({
    url: 'redis://localhost:6379'  // 配置 Redis 的连接
});

// 连接到 Redis 服务器
client.connect().catch(console.error);

// 监听 WebSocket 连接
wss.on("connection", ws => {
    console.log("Client connected via WebSocket");

    // 订阅 Redis 消息队列（answerQueue）
    client.subscribe("answerQueue", (message) => {
        console.log("Received message from Redis:", message);
        ws.send(message);  // 将 Redis 消息转发到 WebSocket 客户端
    });

    // WebSocket 错误处理
    ws.on("error", (err) => {
        console.error("WebSocket error:", err);
    });

    // WebSocket 关闭处理
    ws.on("close", () => {
        console.log("WebSocket connection closed");
    });
});

// Redis 错误处理
client.on("error", (err) => {
    console.log("Error with Redis:", err);
});
